package org.nanhill.commons.pattern.search;

/**
 * @author alin [xalinx at gmail dot com]
 * @date 2006-10-27
 * 
 * Interface to be implemented by all search visitors.
 */

public interface SearchVisitor {
	/**
	 * Add new search criterion.
	 * 
	 * @param criterion
	 * @throws SearchException
	 */
	void addCriterion(SearchCriterion criterion) throws SearchException;

	/**
	 * Performs a search .
	 * 
	 * @throws SearchException
	 *             If a problem occurred during the search.
	 */
	public void doSearch() throws SearchException;
}
